-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JIT: don't import IL for partial compilation blocks #61572
Conversation
Adjust partial comp not to import IL instead of importing it and then deleting the IR. Saves some time and also sometimes a bit of stack space as we won't create as many temps. Update both PC and OSR to check for blocks in handlers early, rather than pretending to support these and then backing out later.
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsAdjust partial comp not to import IL instead of importing it and then Update both PC and OSR to check for blocks in handlers early, rather
|
cc @dotnet/jit-contrib Improves "savings" from partial compilation at Tier0 by about 0.3% (pmi, fx). Total savings is around 4%. Still thinking about ways to use partial comp more aggressively/effectively to reduce Tier0 jit time and code size. Static PGO seems appealing as a guiding criteria, but we only have static PGO for methods that have R2R instances and those won't go through Tier0 (and if R2R is disabled the PGO bundles aren't considered either). So may need to look elsewhere. |
/azp run runtime-jit-experimental |
Azure Pipelines successfully started running 1 pipeline(s). |
Looks like all the partial comp tests with localloc are failing -- likely I'm missing a safety check. |
…n setting patchpoints and then backing out.
/azp run runtime-jit-experimental |
Azure Pipelines successfully started running 1 pipeline(s). |
Localloc issues are handled now, but still seeing problems with some generic EH tests. |
/azp run runtime-jit-experimental |
Azure Pipelines successfully started running 1 pipeline(s). |
Experimental CI failures back down to the expected set. @dotnet/jit-contrib PTAL. |
@dotnet/jit-contrib Anybody up for a review here? It should be quick. I have other changes that build on this one.... |
block->bbFlags |= BBF_PARTIAL_COMPILATION_PATCHPOINT; | ||
setMethodHasPartialCompilationPatchpoint(); | ||
|
||
// Change block to BBJ_THROW so we won't trigger importation of sucessors. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo:
// Change block to BBJ_THROW so we won't trigger importation of sucessors. | |
// Change block to BBJ_THROW so we won't trigger importation of successors. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, will fix in my next PR.
Adjust partial comp not to import IL instead of importing it and then
deleting the IR. Saves some time and also sometimes a bit of stack
space as we won't create as many temps.
Update both PC and OSR to check for blocks in handlers early, rather
than pretending to support these and then backing out later.